home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO035.dsk / CALC.DOC.2.txt < prev    next >
Text File  |  2012-02-16  |  22KB  |  607 lines

  1.  
  2.  
  3.  USER DEFINABLE FUNCTIONS
  4.  
  5.     There are 9 user definable functions given by key Y followed by 1-9.
  6.  These are defined by writing short program segments and using the
  7.  editor command ">" followed by 1-9.  This places the current program in
  8.  the user function area.  User functions can also be downloaded to the
  9.  program area for listing by using the editor command "<" 1-9.  The user
  10.  command will not be permanent, however, unless you type the command to
  11.  save the current user commands (U) from the help menu.  The user
  12.  commands and key redefinitions (see that section) are contained in a
  13.  disk file named USERFUNC which is loaded upon initial entry to the
  14.  calculator.  If this file is not on the disk, then all user functions
  15.  will be disregarded and all keys will be interpreted in the standard
  16.  manner.
  17.  
  18.     User functions can use all the registers, but when performed, will
  19.  not change any registers except the X register.  (The registers are
  20.  saved and restored.)  There is an auto-enter after a user function.
  21.  The calculator comes with the user functions defined as follows:
  22.  
  23.  Y1: Multiplication by SQR(-1).  (Complex mode only)
  24.  Y2: Negate both real & imaginary parts.
  25.  Y3-Y7: Get primitive N-th root of 1, N=3-7 (Gets error in real mode)
  26.  Y8: 10 to power X.
  27.  Y9: LOG(X) to base 10 (common log).
  28.  
  29.     There is also a provision for calling up to 9 separate user supplied
  30.  machine language routines.  These are accessed by key ^@ followed by
  31.  1-9.  The addresses of the routines must be placed in a table of
  32.  addresses located at $4218-$4229.  On entry to the routine, the X
  33.  register is placed in the floating point accumulator and upon return
  34.  the floating point accumulator is placed in the X register.  Routines
  35.  must save and restore any zero page locations used.  You can access the
  36.  registers X, Y, Z, T, 1,..., 9 directly if desired.  These are at
  37.  $422C-$426C (5 bytes each).  Imaginary parts are $80 above these.
  38.  (Note that all are on the $42 page.)  There is a reserved area of
  39.  memory for machine language user routines.  A pointer to this area is
  40.  found at $422A (just beyond the nine user addresses).  Your routines
  41.  may use memory from the address in $422A,B to $90FF.  The memory area
  42.  from $1000 to $1FFF is unlikely to conflict with the calculator and
  43.  would also be an appropriate place for user routines.
  44.  
  45.     User machine language routine #9 is now defined to be RANDOM.
  46.  It acts on the X register just as the Applesoft command RND(X) works.
  47.  This just calls the Applesoft RND routine and affects only the real
  48.  part of the X register.
  49.  
  50.  
  51.  PRINTER INTERFACE
  52.  
  53.     The printer interface refers to a provision for sending the X
  54.  register to a printer and has nothing to do with printing of program
  55.  listings, which has already been discussed.
  56.  
  57.     The BASIC boot program CALCULATOR will have to be slightly modified
  58.  for use with most printers and interface cards.  See the section about
  59.  configuration.  The question asked by this program about printer output
  60.  refers to this interface, not to program listings.  If it is answered
  61.  NO then programs using the interface will run correctly, but, of course,
  62.  will not send anything to the printer.  If it is answered YES then such
  63.  programs can send output to the printer.  In this case, if the printer
  64.  is not turned on, the program will hang.
  65.  
  66.     For a program to print the X register, the ^N command should be put
  67.  in the program at the appropriate place.  To instruct a carriage return
  68.  to be sent to the printer, | should be used.  (Note that ^N never does
  69.  a carriage return, so the | must be used if a carriage return is
  70.  desired.)
  71.  
  72.     In addition, output can be tabbed, just before printing, by the
  73.  ^T command followed by 1-9.  The tab will be the specified number
  74.  times 8.
  75.  
  76.     Output can be formatted by using the ^F command.  This must be
  77.  followed by a format string containing dashes "-" representing digit
  78.  or space positions, possibly a decimal point ".", and possibly commas.
  79.  There should be no more than 9 dashes; more will defeat the format
  80.  command as will a format command not followed by a legal format string.
  81.  The format string will be used for all output by the program until
  82.  another format statement occurs.  Numbers that are too large for the
  83.  allotted space will be printed in their usual Applesoft format.
  84.  
  85.  
  86.  COPYRIGHT NOTICE
  87.  
  88.     This program is copyrighted 1986 by Glen E. Bredon.  All rights
  89.  are reserved.  If you want to keep this program, please remember to
  90.  pay for it by sending your $20 to:
  91.  
  92.        Glen E. Bredon
  93.        521 State Road
  94.        Princeton, NJ 08540
  95.  
  96.  
  97.  KEY REDEFINITION
  98.  
  99.     All keys used for calculator commands can be redefined by the user.
  100.  This does not apply to help menu or edit commands.  The key redefinition
  101.  is provided mainly so that newer apples with better keyboards can use
  102.  the up and down arrows for the rotation up and down commands, etc.
  103.  Otherwise you should be careful about this provision.  The redefinition
  104.  will have no affect on the text shown on the screen.  This could be
  105.  changed by careful use of a disk zap program.
  106.  
  107.     Key redefinition is accessed through the editor and is completely
  108.  self prompting.  Redefined keys are shown and may be reset by defining
  109.  each key to mean itself.  Redefinitions are not made permanent unless
  110.  you use the help menu command U to save user defined functions, since
  111.  the key definitions are kept in the same file with those.
  112.  
  113.     Presently the keys ; and = are defined to be * and + so that these
  114.  need not be shifted.  The up/down arrows are also defined to give the
  115.  U and D stack manipulations.  All lower case characters are defined
  116.  to be their upper case equivalents.
  117.  
  118.  
  119.  MEMORY MANIPULATIONS:
  120.  
  121.     There are eight memory manipulation commands, only four of which are
  122.  indicated on the screen.  These are:
  123.  
  124.  M  1-9  Stores X in memory register indicated
  125.  R  1-9  Recalls memory register indicated to X (may do auto enter)
  126.  <  1-9  Decreases indicated register by one
  127.  >  1-9  Increases indicated register by one
  128.  ^A 1-9  Adds X register to indicated memory register
  129.  ^O      Stores X in register N (1-8) if register 9 contains N
  130.  ^I      Recalls register N (1-8) to X if register 9 contains N
  131.  ^B -#+  Rotates memory banks
  132.  
  133.     No commands except ^B affect the memory banks not shown on the
  134.  screen.  The ^B # option just aborts the ^B command.  You should not
  135.  use a ^B command in a user function because the registers are saved and
  136.  restored when doing a user function and this would just result in one
  137.  bank being copied to another.
  138.  
  139.     For examples of the use of the indexed store command, see the two
  140.  Fourier coefficient computation programs.
  141.  
  142.  PLOTTING FUNCTIONS
  143.  
  144.     To plot a function on the high resolution screen, you must write a
  145.  short program segment that contains the function to be plotted inside
  146.  square brackets.  For example the key sequence ^P [ RTN * ] ^E sets up
  147.  a program segment to plot the squaring function.  To do the plot, you
  148.  then must set X and Y to the left and right boundaries, and Z and T to
  149.  the bottom and top boundaries desired and then type ^R to run the
  150.  program.  Of course, the stack registers may be set up at the start of
  151.  the program instead of from the keyboard, if desired.
  152.  
  153.     In complex mode this works somewhat differently.  Instead of plotting
  154.  the value of the function against the argument, the complex mode plots
  155.  the complex value (a point in the plane) of the function for values of
  156.  the argument running along the straight line between the points which
  157.  are contained in the X and Y registers at the start of the plot command.
  158.  Also, the Z register contains the scale factor (usually 1) and the T
  159.  register contains the point (complex) to be put at the center of the
  160.  screen (usually 0).  (Only the real part of the Z register is used.)
  161.  Scale 1 will give a distance of 1 from the center of the screen to the
  162.  top.  Scale .5 gives distance 2, etc.
  163.  
  164.     Complex mode can be used to plot polar equations and more general
  165.  parametric functions.  See the demonstration programs for several
  166.  examples of this.
  167.  
  168.     Key ^Y is the lead in to various "screen functions".  Control Y
  169.  followed by 1-9 gives:
  170.  
  171.  1.  Clear screen at start of plot. *
  172.  2.  Don't clear screen.
  173.  3.  Plot axes. *
  174.  4.  Don't plot axes.
  175.  5.  Use "dotted" plotting. *
  176.  6.  Use "solid" plotting.
  177.  7.  Sound bell and wait for keypress at end of plot. *
  178.  8.  Do not wait for keypress and do not return to text mode.
  179.  9.  Set all defaults.
  180.  
  181.     Conditions marked with * are the defaults and all programs start
  182.  with these.  Function 8 provides a way to "continue" a plot without
  183.  user intervention.
  184.  
  185.     In all cases, 279 points are plotted by the plot command, but
  186.  multiples of this can be obtained using screen functions 2, 4, and 8
  187.  followed by another plot.
  188.  
  189.     Plotting of polar equations is simplified by the function
  190.  Exp(i*realpart) given by key "O".  Note that this just gives the
  191.  complex number  cos(t) + i*sin(t)  where t is the real part of X.
  192.  
  193.  
  194.     At the end of a plot, when the bell sounds and a keypress is
  195.  expected, if the key you press is the & key then a JSR $3F5 will be
  196.  done.  This provision can be used to call a routine to dump the high
  197.  resolution screen to a printer, either by sending the required command
  198.  to a printer interface that has a high resolution dump capability or
  199.  by calling a user supplied routine.  The best location for such a
  200.  routine would be $300-$3CF but longer routines could be placed just
  201.  below the high resolution screen.
  202.  
  203.     When doing a plot in step mode the graphics screen is not turned on
  204.  until the entire plot is complete.  This makes it possible to use the
  205.  step provision to debug plotting programs.
  206.  
  207.     A plot saves and replaces all registers, so that the registers will
  208.  be the same at the end of the plot as they were at its start.
  209.  
  210.  
  211.  EXIT TO MONITOR PROVISION
  212.  
  213.     If you type control G you will be sent to the monitor.  The floating
  214.  point accumulator will contain the unpacked form of register X.  You
  215.  should return to the calculator with the control Y monitor command.
  216.  This provision is made to facilitate testing of floating point routines.
  217.  Upon the control Y return the value currently in the floating point
  218.  accumulator will be placed in the X register, where it can be examined
  219.  by the user.  You are free to run any binary program that does not use
  220.  any memory above $4200 and does not conflict with the Applesoft zero
  221.  page usage.  Obviously, some care should be exercised.
  222.  
  223.     This provision can be used to gather the exact floating point number
  224.  that you want to use.  You should be aware of the fact that prior to the
  225.  move to the X register, the floating point accumulator will be rounded
  226.  using the high bit of location $AC, so you may want to zero this byte.
  227.  This rounding is used by all Applesoft floating point routines.
  228.  
  229.     The Applesoft "floating point accumulator" consists of the memory
  230.  locations $9D-$A2.  $9D holds the exponent of the number plus $81.
  231.  (Thus $80 represents 1/2, $81 represents 1, $82 represents 2, etc., as
  232.  a factor the rest of the number must be multiplied by to get the true
  233.  value.)  The four bytes $9E,$9F,$A0,$A1 contain the normalized number,
  234.  which is 1 followed by the part after the "decimal point".  Thus the
  235.  high bit of $9E is always on and the fractional part begins with the
  236.  next highest bit.  The byte at $A2 (called FACSGN) holds the sign of
  237.  the number.  Only the high bit of this location has significance.
  238.  When a floating point number is stored to memory it is "packed" by
  239.  putting the sign bit (high bit of $A2) into the high bit of $9E.
  240.  
  241.  SUBROUTINES
  242.  
  243.  
  244.     There is a provision for up to 9 subroutines.  The routines must
  245.  be placed at the start of the program.  (They are not executed
  246.  unless called by a GOSUB.)
  247.  
  248.     To define a subroutine while programming, use the K key followed
  249.  by specification (1-9) of the subroutine number.  (These need not
  250.  be in numeric order.)  Terminate the subroutine definition with
  251.  key B for "return" (or "back").
  252.  
  253.     To call the routine insert a GOSUB in the program with key G,
  254.  followed by the number 1-9 of the subroutine to be called.
  255.  
  256.     Subroutines may be nested to a depth of 32.  More than this
  257.  gives an OUT OF MEMORY error message.  Calling a nonexistent
  258.  subroutine yields an UNDEF'D STATEMENT error.
  259.  
  260.  
  261.  SOLVING EQUATIONS
  262.  
  263.     There is a built in facility for solving equations, or, more
  264.  precisely, finding zeros of a function.  This is done from a program
  265.  by key Z.  This modifies a PLOT segment (function in square brackets)
  266.  into a segment containing a function to be solved for a zero.  This
  267.  is done by an iterative procedure and the initial quess should be in
  268.  the X register when entering the solve mode.  For example, to find a
  269.  value of x for which COS(x)=x, (converted to finding a zero of the
  270.  function COS(x)-x), enter the program ^P Z [ RETURN C - ] ^E.  In the
  271.  editor this reads:
  272.  
  273.  SOLVE
  274.  PLOT
  275.     ENTER
  276.     COS
  277.     Y-X
  278.  ENDPLOT
  279.  
  280.  Then enter a quess into the X register and run the program with ^R.
  281.  
  282.     This facility also operates in complex mode.  Note that the
  283.  iterative procedure may not converge and may yield errors (OVERFLOW,
  284.  DIVISION BY ZERO, etc.).  Convergence may depend on reasonable guesses
  285.  for the first try.  This is particularly true of the complex mode.
  286.  
  287.     Two SOLVE instructions in a row (Z key twice) will result in the
  288.  Calculator searching for all zeros in the range between the X and Y
  289.  registers.  On completion, the number of zeros found is in the Z
  290.  register and the zeros are in the memory registers (perhaps including
  291.  the other banks).  This works only in real mode.  Note that all
  292.  memory registers are set to zero upon the second SOLVE command,
  293.  but they may be set up prior to the "[" start of the function and
  294.  may be used in the function itself.
  295.  
  296.  SUPPLIED PROGRAMS - DESCRIPTION OF OPERATION
  297.  
  298.  1. QUADRATIC
  299.     Purpose: Solves  ax^2 + bx + c = 0.
  300.     Input  a,b,c
  301.     On exit: Roots in X, Y
  302.  
  303.  2. AVERAGE
  304.     Purpose: Computes average of list of numbers.
  305.     Input data, end with ->
  306.     On exit: Average in X and in 3, Sum in 1, #entries in 2.
  307.  
  308.  3. FACTORIAL
  309.     Purpose: Computes N!.
  310.     Input N
  311.     On exit: N! in X, N in 1.
  312.  
  313.  4. BINOMIAL
  314.     Purpose: Computes binomial coefficient (N:K).
  315.     Input N,K
  316.     On exit: N in Z, K in Y, (N:K) in X.
  317.  
  318.  5. CASH REG
  319.     Purpose: Simulation of cash register.
  320.     Input data (dollars and cents but with no decimal point)
  321.     While running: Total is in 1, #items in 2, last item in 9
  322.        (Item printed if printer selected on boot)
  323.     End input with ->
  324.     On exit:  Z: total
  325.               Y: 5% tax
  326.               X: Grand total
  327.     (These printed if printer selected.)
  328.  
  329.  6. POLAR
  330.     Purpose: Converts cartesian to polar coordinates.
  331.     Input x,y
  332.     On exit: T: r
  333.              Z: theta
  334.              Y: y
  335.              X: x
  336.  
  337.  7. VARIANCE
  338.     Purpose: Computes average, variance, standard deviation of data.
  339.     Input data x..., end with ->
  340.     While running: 1: Sum, 2: Sum of squares, 3: #entries, Y: last entry
  341.     On exit: 1: Average
  342.              2: Variance
  343.              3: Standard deviation
  344.              X: # of entries
  345.  
  346.  8. PAUSE
  347.     Purpose: Produces 1 second pause. (For use in other programs.)
  348.  
  349.  9. ROUND
  350.     Purpose: Rounds X register to 4 decimal places.
  351.  
  352.  10. CORRELATION
  353.      Purpose: Computes correlation coefficient of input data.
  354.      Input x,y..... pairs, -> to end
  355.      On exit: 1: sum of xy
  356.               2: sum of x squared
  357.               3: sum of y squared
  358.               X: correlation coefficient
  359.  
  360.  11. LINEAR REGRESSION
  361.      Purpose: Computes line of regression.
  362.      Input x,y..... pairs, -> to end
  363.      On exit: Z: coef of regression
  364.               Y: average of y's
  365.               X: average of x's
  366.               1: # of pairs x,y
  367.               2: sum of x's
  368.               3: sum of y's
  369.               4: sum of x squared
  370.               5: sum of y squared
  371.               6: sum of xy
  372.               7: covariance
  373.               8: variance of x's
  374.               9: standard deviation of x's
  375.      Regression line is  (y-Y)=C(x-X)  where C = coef. of regression
  376.  
  377.  12. CHI SQUARE
  378.      Purpose: Compute chi square of data.
  379.      Input  O,E...., end with ->
  380.      On exit: X: chi square [sum of {(O-E)^2}/E]
  381.               9: #entries
  382.  
  383.  13. DETERMINANT
  384.      Purpose: Compute determinant of 3x3 matrix.
  385.      Input matrix entries in reading order
  386.      On exit: 1-9: matrix entries
  387.               X: determinant
  388.  
  389.  14. STIRLING
  390.      Purpose: Computes Stirling's appoximation to log n! (base 10).
  391.      Input n
  392.      On exit: approximation in X.
  393.  
  394.  15. ERROR
  395.      Purpose: Computes the error integral from -X to X:
  396.      Input X                        [1/SQR(2pi) times integral of ]
  397.      On exit: 1: X                  [ exp(-x*x/2) dx              ]
  398.               X: Error integral
  399.  
  400.  16. ELLIPTIC
  401.      Purpose: Computes the complete elliptic integrals:
  402.  
  403.  
  404.           K = integral 0 to pi/2 of (1 - k^2 sin^2 x)^(-1/2) dx
  405.  
  406.  
  407.           E = integral 0 to pi/2 of (1 - k^2 sin^2 x)^(1/2) dx
  408.  
  409.  
  410.      Input k
  411.      On exit: 1: k
  412.               Y: E
  413.               X: K
  414.  
  415.  17. RESIDUE
  416.      Purpose: Computes residue at 0 of 1/x.
  417.      On exit: Y: residue imag. part
  418.               X: residue real part
  419.  
  420.      To use for arbitrary function delete line 17 and insert function
  421.  
  422.  18. CUBIC
  423.      Purpose: Computes roots of cubic polynomial: ax^3+bx^2+cx+d
  424.      Input coefficients  a, b, c, d
  425.      On exit: 1: a
  426.               2: b
  427.               3: c
  428.               4: d
  429.               X, Y, Z: roots (complex)
  430.  
  431.  19. AREA
  432.      Purpose: Computes area of polygon.
  433.      Input  x,y,... (coordinates of vertices of polygon)
  434.      End input with ->
  435.      On exit: Area in X
  436.  
  437.  20. GEOM MEAN
  438.      Purpose: Computes geometric mean of data.
  439.      Input data, end with ->
  440.      On exit: geom mean in X, #entries in 1
  441.  
  442.  21. FOURIER EVEN
  443.      Purpose: Computes even Fourier coefficients of f(X) = X+ABS(X).
  444.  
  445.  
  446.      On exit: Register N (1-8) contains N-th coefficient:    f(x)cos(Nx)dx
  447.  
  448.  
  449.               Register X contains 0-th coefficient:      f(x)dx
  450.  
  451.  
  452.      The answers are rounded to four decimal places.
  453.  
  454.  22. FOURIER ODD
  455.      Purpose: Computes odd Fourier coefficients of f(X) = X+ABS(X).
  456.  
  457.  
  458.      On exit: Register N (1-8) contains N-th coefficient:    f(x)sin(Nx)dx
  459.  
  460.  
  461.      To use these with an arbitrary function, replace lines 2-4 with
  462.      the desired function.
  463.  
  464.  23. PLOT DEMO
  465.      Purpose: Demonstrate plotting of real functions.
  466.  
  467.      Plots  2(X^4-X^2+X/3)  and then, without erasing,  sin(2pi X).
  468.      After keypress, plots  SQR(ABS(X)), then  X*X, then  ABS(X)
  469.  
  470.  24. PLOT DEMO 2
  471.      Purpose: Demonstrate polar plotting (using complex mode).
  472.  
  473.      Plots the cardioid  r=1-cos(th)  by plotting the complex function
  474.      (1-cos(X))EXP(iX)  for  X  between  0  and  2pi.
  475.      After keypress, plots (in "solid" mode) the spiral  r=theta  by
  476.      means of the complex function  X*EXP(iX).
  477.  
  478.  25. PLOT DEMO 3
  479.      Purpose: Demonstrate error handling for plots.
  480.      Plots the function 1/X.
  481.      After keypress, plots  1/(X*X-4).
  482.      After keypress, plots  LOG(X).
  483.  
  484.  26. PLOT INTEGRAL
  485.      Purpose: Demonstrate use of integral with a plot.
  486.      Plots values of E-1 where E is the complete elliptic integral
  487.      (see above) against the parameter k running from 0 to 1.  The
  488.      vertical axis extends from 0 to .6.  This program takes about
  489.      50 minutes to run since it computes 279 definite integrals of
  490.      a complicated function.
  491.  
  492.  27. LISSAJOUS
  493.      Purpose: Demonstrate parametric plotting with Lissajous curves.
  494.      Plots these Lissajous curves:
  495.  
  496.      x = sin(3t),  y = sin(4t)
  497.      x = sin(3t),  y = cos(5t)
  498.      x = sin(7t),  y = cos(11t)
  499.      x = sin(13t), y = cos(17t)
  500.  
  501.      (The last one is done in two parts so that 2*279 points are
  502.      plotted instead of the usual 279.  The program indicates how
  503.      this can be done using a loop.)
  504.  
  505.  SUMMARY OF AVAILABLE FUNCTIONS AND COMMANDS
  506.  
  507.       FUNCTION KEYS:
  508.  
  509.  +      Plus
  510.  -      Minus
  511.  *      Times
  512.  /      Divide
  513.  S      Sin
  514.  C      Cos
  515.  T      Tan
  516.  HS     Sinh
  517.  HC     Cosh
  518.  HT     Tanh
  519.  AS     Arcsin
  520.  AC     Arccos
  521.  AT     Arctan
  522.  AHS    Argsinh
  523.  AHC    Argcosh
  524.  AHT    Argtanh
  525.  Q      Square root
  526.  E      Exp
  527.  L      Log
  528.  &      Absolute value
  529.  N      Negate X (In complex mode only the "part" showing.)
  530.  !      Reciprocal
  531.  I      Integer part
  532.  P      Pi
  533.  "      Real part
  534.  '      Imaginary part
  535.  V      Angle (theta in complex mode)
  536.  O      Exp(i*realpart)    (cos(t) + i sin(t))
  537.  Y  1-9 User function
  538.  ^@ 1-9 User machine language routine
  539.  
  540.       MEMORY AND STACK MANIPULATION KEYS:
  541.  
  542.  RETURN Enter
  543.  ^X     Clear X register
  544.  ^C     Clear all registers
  545.  D      Rotate stack down
  546.  U      Rotate stack up
  547.  X      Exchange X and Y
  548.  R  1-9 Recall memory to X
  549.  M  1-9 Store X in memory
  550.  <  1-9 Decrement memory
  551.  >  1-9 Increment memory
  552.  ^A 1-9 Add X to memory
  553.  ^I     Recall of reg 1-8 pointed to by 9
  554.  ^O     Store in reg 1-8 pointed to by 9
  555.  ^B -#+ Rotate memory banks
  556.  
  557.       MODE KEYS:
  558.  
  559.  #      Standard display
  560.  $      Hex display
  561.  %      Degree/Radian toggle
  562.  ^Z     Complex mode toggle
  563.  J      Real/Imag display toggle
  564.  
  565.       PRINTER INTERFACE KEYS:
  566.  
  567.  ^T 1-9 Tab
  568.  ^N     Print X
  569.  |      Carriage return
  570.  ^F     Format (followed by format string)
  571.  
  572.       PROGRAMMING KEYS:
  573.  
  574.  ^P     Start programming
  575.  ^E     End programming or abort running program
  576.  ^W -#+ While
  577.  ^L 1-9 Loop
  578.  \  -#+ If condition
  579.  ^V     Else
  580.  ^Q     Endif
  581.  ^R     Run program in memory
  582.  ^S     Step program in memory
  583.  K  1-9 Subroutine definition start
  584.  G  1-9 Gosub
  585.  B      Return from subroutine
  586.  ^U     Skip past current loop (Right arrow key)
  587.  ^D     Get input from datafile (if one is open)
  588.  ESC    Input request
  589.  (      Start of integral
  590.         (Two in a row give a PRECISION INTEGRAL, precision in T.)
  591.  )      End of integral
  592.  [      Start of function to be plotted
  593.  ]      End of function to be plotted
  594.  ^Y 1-9 Screen functions (see PLOTTING)
  595.  Z      Modifies following PLOT segment to a function to SOLVE
  596.         (Two in a row give a SOLVE IN RANGE.)
  597.  
  598.       SPECIAL PURPOSE KEYS:
  599.  
  600.  @      Exp during input request
  601.  W      The character E in immediate numerical input
  602.  _      The character - in immediate numerical input
  603.  &      Does a JSR $3F5 when pressed at end of plot
  604.  ^G     Go to monitor, return by ^Y
  605.  ?      Go to help menu
  606.  
  607.